<?php

namespace Common\Model;

use Common\Lib\Weixin;
use Think\Model;

class WeixinMsgtplModel extends Model
{

    /**
     * 发送用户回复模板消息通知
     *
     * 当用户回复提问/主题时调用此方法发送模板通知
     *
     * @param int    $uid        回复用户ID
     * @param int    $objid      回复主题/提问ID
     * @param string $content    回复内容
     * @param string $reply_type 回复类型 [question-问题回复 bbs-主题回复]
     * @return bool
     */
    public function send_userreplymsg($uid, $objid, $content, $reply_type = 'question')
    {
        // 是否开启微信公众平台(不开启则不能发送)
        if (C('YTATA_WEIXIN_APIOPEN') != '1') {
            return false;
        }

        $data = array(); // 模板消息数据
        // 回复者用户信息
        $replyuser = D('User')->get_user_one($uid, true);
        if (empty($replyuser)) {
            return false;
        } else {
            $data['keyword1'] = $replyuser['nickname'];  // 回复者
        }
        $data['first'] = array('用户回复通知','#003399');  // 模板内容描述
        $data['keyword2'] = date('Y-m-d H:i');  // 回复时间
        $data['keyword3'] = array(cut_str($content, 10), '#003399');  // 回复内容
        $data['remark'] = array('如您不想收到此类消息提醒，请在我的>会员中心>账号设置>提醒设置中关闭提醒。', '#CC3300');  // 备注内容

        if ($reply_type == 'question') {
            $url = U('question/view', array('id'=>$objid),'',true);
        } elseif ($reply_type == 'bbs') {
            $url = U('bbs/view', array('id'=>$objid),'',true);
        }

        // 获得问题/主题发布者用户信息
        switch ($reply_type) {
            case 'question':
                $obj = D('Question')->get_question_one($objid);
                break;
            case 'bbs':
                $obj = D('Bbs')->get_bbs_one($objid);
                break;
            default:
                return false;
        }

        $publishuser = D('User')->get_user_one($obj['uid']);
        if (empty($publishuser) || empty($publishuser['openid']) || ($publishuser['isremind'] != '1')) {
            return false;
        } else {
            $touser = $publishuser['openid'];
        }

        $msgtpl = $this->find(1);
        if (empty($msgtpl) || empty($msgtpl['tplid'])) {
            return false;  // 模板ID未设置
        } else {
            $tplid = $msgtpl['tplid'];
        }

        Weixin::sendTemplate($touser, $tplid, $data, $url);
        return true;
    }
}